In set_filter(), handle the case where the new filter is the same as the old filter
authorFederico Mena Quintero <federico@novell.com>
Thu, 10 Sep 2009 22:22:12 +0000 (17:22 -0500)
committerBenjamin Otte <otte@gnome.org>
Thu, 15 Oct 2009 20:06:17 +0000 (22:06 +0200)
Signed-off-by: Federico Mena Quintero <federico@novell.com>
gtk/gtkfilesystemmodel.c

index e10babcb0c8526091979063ed4408b25ee19bcc3..4c90fe2aca9c945e4edefd887c48e9ef66bedf10 100644 (file)
@@ -1809,15 +1809,20 @@ void
 _gtk_file_system_model_set_filter (GtkFileSystemModel      *model,
                                   GtkFileFilter *          filter)
 {
+  GtkFileFilter *old_filter;
+
   g_return_if_fail (GTK_IS_FILE_SYSTEM_MODEL (model));
   g_return_if_fail (filter == NULL || GTK_IS_FILE_FILTER (filter));
   
   if (filter)
     g_object_ref (filter);
-  if (model->filter)
-    g_object_unref (model->filter);
+
+  old_filter = model->filter;
   model->filter = filter;
 
+  if (old_filter)
+    g_object_unref (old_filter);
+
   gtk_file_system_model_refilter_all (model);
 }